package cn.ilikes.tools.nosql.jpa.persistences;

import java.util.Map;

import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.metamodel.Metamodel;

import cn.ilikes.tools.nosql.jpa.JPASQLNoSupportException;

public class JPASQLEntityManagerBase {

	public void clear() {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void close() {
		throw new JPASQLNoSupportException("this not work ");

	}

	public boolean contains(Object arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Query createNamedQuery(String arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> TypedQuery<T> createNamedQuery(String arg0, Class<T> arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Query createNativeQuery(String arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Query createNativeQuery(String arg0, Class arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Query createNativeQuery(String arg0, String arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Query createQuery(String arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> TypedQuery<T> createQuery(CriteriaQuery<T> arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> TypedQuery<T> createQuery(String arg0, Class<T> arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public void detach(Object arg0) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public <T> T find(Class<T> arg0, Object arg1) {
		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public void flush() {
		throw new JPASQLNoSupportException("this not work ");

	}

	public CriteriaBuilder getCriteriaBuilder() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Object getDelegate() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public EntityManagerFactory getEntityManagerFactory() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public FlushModeType getFlushMode() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public LockModeType getLockMode(Object arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Metamodel getMetamodel() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public Map<String, Object> getProperties() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> T getReference(Class<T> arg0, Object arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public EntityTransaction getTransaction() {

		throw new JPASQLNoSupportException("this not work ");
	}

	public boolean isOpen() {

		return false;
	}

	public void joinTransaction() {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void lock(Object arg0, LockModeType arg1) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void lock(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public <T> T merge(T arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public void persist(Object arg0) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void refresh(Object arg0) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void refresh(Object arg0, Map<String, Object> arg1) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void refresh(Object arg0, LockModeType arg1) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void refresh(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void remove(Object arg0) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void setFlushMode(FlushModeType arg0) {
		throw new JPASQLNoSupportException("this not work ");

	}

	public void setProperty(String arg0, Object arg1) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> T unwrap(Class<T> arg0) {

		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> T find(Class<T> arg0, Object arg1, Map<String, Object> arg2) {
		throw new JPASQLNoSupportException("this not work ");
	}

	public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2, Map<String, Object> arg3) {
		throw new JPASQLNoSupportException("this not work ");
	}

}
